package com.cyrilmottier.android.queryhighlight.text;
import java.util.Locale;
import java.util.regex.Pattern;
public final class Normalizer {
private static final Pattern PATTERN_DIACRITICS = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
private static final Pattern PATTERN_NON_LETTER_DIGIT_TO_SPACES = Pattern.compile("[^\\p{L}\\p{Nd}]");
private Normalizer() {
//no instance
}
public static final String forSearch(CharSequence searchTerm) {
if (searchTerm == null) {
return null;
}
String result = java.text.Normalizer.normalize(searchTerm, java.text.Normalizer.Form.NFD);
result = PATTERN_DIACRITICS.matcher(result).replaceAll("");
result = PATTERN_NON_LETTER_DIGIT_TO_SPACES.matcher(result).replaceAll(" ");
return result.toLowerCase(Locale.ROOT);
}
}